package com.iceclean.service;

import com.iceclean.po.User;

/**
 * @author : Ice'Clean
 * @date : 2021-05-01
 *
 * 用户服务接口
 */
public interface UserService {
    /**
     * 通过用户 id 查找用户
     * @param userId 用户id
     * @return 用户实例对象
     */
    User findUserById(int userId);

    /**
     * 通过用户名查找用户（在登录时用到）
     * @param userName 用户名
     * @return 用户实例对象
     */
    User findUserByUserName(String userName);

    /**
     * 用户登录服务
     * @param userName 用户名
     * @param userPass 用户密码
     * @return 登录成功返回用户实例对象，失败返回 null
     */
    User loginUser(String userName, String userPass);

    /**
     * 注册新用户
     * @param userName 新用户用户名
     * @param userPass 新用户密码
     * @param userPostBox 新用户预留的邮箱
     * @return 新用户实例对象
     */
    User createNewUser(String userName, String userPass, String userPostBox);

    /**
     * 更新用户数据
     * @param user 存放更新了数据的用户实体
     * @return 是否更新成功
     */
    boolean updateUser(User user);

    /**
     * 对内容进行 加密 / 解密 操作（当密钥相同时，加密一次再解密一次得到原内容）
     * @param content 需要加密的内容
     * @param codeKey 解密 / 解密的密钥
     * @return 加密 / 解密后的内容
     */
    String changeCode(String content, String codeKey);
}
